﻿//一些数学方面的计算计算工具类
//author 夏天的树人


package org.summerTree.math
{

	public final class  Math2
	{

		/*求出圆的任意角度切线的倾斜角
		 *
		 */
		public static  function getCircle_K(angle:Number,R:Number=1):Number
		{
			var px:Number=R * Math.cos(angle);
			var py:Number=R * Math.sin(angle);
			var k:Number=- px / py;
			return Math.atan(k) * 180 / Math.PI;
		}
		//正弦曲线y=sinx的导数，求切线的倾斜角
		public static  function getSinLine_K(angle:Number):Number
		{
			//正弦曲线的sin导数
			var cos_daoshu:Number=Math.cos(angle);
			return Math.atan(cos_daoshu) * 180 / Math.PI;
		}
		//余弦曲线y=cosx的导数
		public static  function getCosLine_K(angle:Number):Number
		{
			//正弦曲线的sin导数
			var sin_daoshu:Number=- Math.sin(angle);
			return Math.atan(sin_daoshu) * 180 / Math.PI;
		}
		//获取到一个最小和最大值之间的数
		/* @ minNum 最小值
		 * @ maxNum 最大值
		 *
		*/
		public static  function randomRange(minNum:Number,maxNum:Number):Number
		{
			return (Math.random() * maxNum - minNum + 1) + minNum;
		}
		
		
		//计算出两个圆的连线长度,即计算出单个圆的半径
		/* 用于求出多圆上的其中一个圆点的位置
		 * radius 半径
		 * count    圆上平均分为多少个圆
		 *
		 */		
		public static function getCircleLength(radius:Number,count:int):Number
		{
			var angle:Number=2*Math.PI/count;
			var Length:Number;
			Length=2*radius*radius-2*radius*radius*Math.cos(angle);
			return Math.sqrt(Length)/2;			
		}		
	}
}